/**
 * @file cognition_wrapper.h
 * @brief 认知相关程序封装,主要用于执行条筒搬运任务
 * @author weeksun
 * @version 1.0
 * @date 2017-10-12
 */
#ifndef COGNITION_WRAPPER_H
#define COGNITION_WRAPPER_H

#include "robot_driver_base.h"
#include "bucket_transport_task.h"
#include "prosper_user_code.h"
#include <ros/ros.h>
#include <string>
//#include "turtlebot_user_code.h"

namespace AgvAssistant {

/**
 * @brief 认知程序封装集成
 */
class CognitionWrapper{
public:
  /**
   * @brief 创建认知封装类对象
   */
  CognitionWrapper();
private:
  ros::NodeHandle nh_;    ///< 全局句柄
  ros::NodeHandle nh_private;  ///< 私有句柄
  RobotDriverBasePtr driver_ptr_;    ///< 机器人驱动对象共享指针
  BucketTransportPtr bucket_transport_ptr_;  ///< 条筒搬运任务对象共享指针
  RobotDriverBasePtr driver_ptr_turtlebot;  ///< turtlebot机器人驱动对象共享指针

  std::string task_name_;       ///< 任务名称
  std::string driver_name_;     ///< 驱动名称
};

}

#endif // COGNITION_WRAPPER_H
